
        <html>
			<head>
			     <title>CVE-2014-3393详细分析与复现 - 0x_Jin</title>
				 <meta http-equiv="content-type" content="text/html; charset=UTF-8">
			</head>
			<body>
				<h1>原文地址:<a href="http://drops.wooyun.org/papers/3451">http://drops.wooyun.org/papers/3451</a></h1>
				
      <p>
        <h2>0x00 漏洞简介：</h2>

<hr />

<p>Cisco Adaptive Security Appliance (ASA) Software在Clientless SSL VPN入口自定义框架在实现上存在安全漏洞，未经身份验证的远程攻击者可利用此漏洞修改Clientless SSL VPN入口内容，导致窃取凭证、跨站脚本及其他攻击。此漏洞源于没有正确实现Clientless SSL VPN入口自定义框架内的身份验证检查。</p>

<h2>0x01 漏洞详情：</h2>

<hr />

<p>首先问题总结一下就是越权，在思科VPN的登录入口设置处可以设置一些title以及logo等。但是这些地方是可以被越权修改掉的，并且这些地方还存在xss。 如下图：
<!--more--></p>

<p><img src="http://static.wooyun.org/20141101/2014110104312619586.png" alt="enter image description here" /></p>

<p>这个是本地搭建一个VPN然后来复现的，这是更改的vpn入口处的title，插入的JS。 那么为什么会造成这个原因呢？我们来看下<a href="http://breenmachine.blogspot.ca/2014/10/cisco-asa-ssl-vpn-backdoor-poc-cve-2014.html">老外的文章</a>。</p>

<p>里面曾说到：</p>

<blockquote>
  <p>check on some of the administrative interface pages can be bypassed by</p>
  
  <p>setting the cookie value to any valid file on the file system.</p>
</blockquote>

<p>在一些管理界面的可以通过设置cookie值为文件系统上存在的文件即可绕过登录。(英文渣，对着google翻译扣下来的英文)</p>

<p>具体缺陷代码如下：</p>

<pre><code>Function CheckAsdmSession(cookie,no_redirect)
……..
Local f = io.open(‘asdm/’..cookie, “r”)
If f ~= nil then
f:close()
return true;
end
</code></pre>

<p>单单这样可能比较难理解，我们来结合检测方式来看一遍。同样在上个连接中老外给了这样一个post包(burpsuite)的。</p>

<p><img src="http://static.wooyun.org/20141101/2014110104312797715.png" alt="enter image description here" /></p>

<p>可以看到上图的POST包中指定了Cookie为<code>ced=../../locale/ru/LC_MESSAGES/webvpn.mo</code>; 如果对方存在这个漏洞且能利用的话是会得到这样一个返回值:</p>

<p><img src="http://static.wooyun.org/20141101/2014110104312741771.png" alt="enter image description here" /></p>

<p>http状态码为302，这样的话就代表存在且能利用造成影响。 为什么我要说存在且能利用造成影响，难道还有存在且不能造成影响的？ 还别说，真有。一开始我认为这个漏洞，这么厉害那么影响肯定广泛结果自己复现后发现并不是那样，利用起来有个条件 看下图：</p>

<p><img src="http://static.wooyun.org/20141101/2014110104312828864.png" alt="enter image description here" /></p>

<p>跟上图相比cookie值也设置了，post包的内容又是一样，地址又是一样。 为什么这次会返回200呢？秉着刨根问底的精神，我又仔仔细细的测了一遍，重新搭了几次VPN做一步记录一下。 最后发现了关键所在，就是Cisco ASDM上你必须点过Configuration选项卡的Customization页面的preview(预览)按钮。 如果没有点过preview(预览)按钮的话，即使是存在漏洞的版本也不能利用造成影响。 如下图：</p>

<p><img src="http://static.wooyun.org/20141101/2014110104312890301.png" alt="enter image description here" /></p>

<p>所以当你去测试存在漏洞的设备时，却发现返回的是200请不要胡思乱想，就是这个原因。 另外经过测试发现，点过之后如果设备没有关机重启那么可以一直利用，如果关机重启了那就呵呵了只能等下一次点preview(预览)按钮了。</p>

<p>但是也不要觉得鸡肋，今天我跟我的小伙伴写了个exp用来检测(真的只是检测)，测试的都是国外有名的大学，发现10个大学3-4个可以利用。</p>

<p><img src="http://static.wooyun.org/20141101/2014110104312892029.png" alt="enter image description here" /></p>

<p>说了这么久如何检测，那么我们来说正事，我们应该如何复现攻击呢？</p>

<p>在<a href="http://breenmachine.blogspot.ca/2014/10/cisco-asa-ssl-vpn-backdoor-poc-cve-2014.htmlp://breenmachine.blogspot.ca/2014/10/cisco-asa-ssl-vpn-backdoor-poc-cve-2014.html">这个</a>链接中，老外给了一个burpsuite的包，我们可以重载包来恢复状态，恢复后就有4个Repeater，我们只需把host跟target都修改成目标依次发包就可以了！</p>

<p>关于更多的资料在Ruxcon2014上已经有<a href="https://ruxcon.org.au/assets/2014/slides/Breaking%20Bricks%20Ruxcon%202014.pdf">大神写的PDF</a>了</p>

<p>附视频: <a href="http://static.youku.com/v1.0.0423/v/swf/loader.swf?VideoIDS=XODE2MDE0NjQ4&amp;embedid=MTIzLjEzOC43OS44AjIwNDAwMzY2MgIC&amp;wd=&amp;vext=pid%3D%26emb%3DMTIzLjEzOC43OS44AjIwNDAwMzY2MgIC%26bc%3D%26type%3D0">CVE-2014-3393</a></p>

<p>受影响版本：</p>

<ul>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.2.0.45</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.2.1</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.2.1.1</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.2.2</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.2.2.10</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.2.2.12</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.2.2.16</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.2.2.17</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.2.3</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.2.4</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.2.4.1</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.2.4.4</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.2.5</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.2.5.13</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.2.5.22</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.2.5.26</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.2.5.33</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.2.5.40</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.2.5.41</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.2.5.46</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.2.5.48</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.2.5.50</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.3.1</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.3.1.1</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.3.1.4</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.3.1.6</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.3.2</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.3.2.13</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.3.2.23</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.3.2.25</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.3.2.31</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.3.2.33</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.3.2.34</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.3.2.37</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.3.2.39</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.3.2.4</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.3.2.40</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.3.2.41</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.4.1</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.4.1.11</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.4.1.3</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.4.2.1</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.4.2</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.4.2.8</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.4.3</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.4.3.8</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.4.3.9</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.4.4</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.4.4.1</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.4.4.3</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.4.4.5</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.4.4.9</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.4.5</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.4.5.6</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.4.6</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.4.7</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.4.7.3</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.4.7.15</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.4.7.22</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.6.1</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.6.1.1</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.6.1.10</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.6.1.12</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.6.1.13</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.6.1.14</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.6.1.2</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:8.6.1.5</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:9.0.1</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:9.0.2</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:9.0.2.10</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:9.0.3</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:9.0.3.6</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:9.0.3.8</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:9.0.4</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:9.0.4.1</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:9.0.4.17</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:9.0.4.20</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:9.0.4.5</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:9.0.4.7</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:9.1..1</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:9.1.1.4</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:9.1.2</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:9.1.2.8</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:9.1.3</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:9.1.3.2</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:9.1.4</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:9.1.5</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:9.1.5.10</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:9.1.5.15</li>
<li>cpe:/a:cisco:adaptive&#95;security&#95;appliance_software:9.3.1</li>
</ul>

<p>修复方案： 目前思科已在2014年10月8号发布了补丁，连接： <a href="http://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20141008-asa">http://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20141008-asa</a></p>

<p>附burpsuite包的下载地址：https://github.com/breenmachine/various</p>      </p>
    
			</body>
		</html>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          